比較下面兩個用法:
<!-- computed -->
<div>{{ reverseMessage }}</div>
<!-- method -->
<div>{{ reverseMessage() }}</div>
前者使用 computed 的屬性,後者則是使用 method 方法
/* computed */
new Vue({
computed: {
reverseMessage: function() {
return this.message.split('').reverse().join('')
}
}
});
/* method */
new Vue({
methods: {
reverseMessage: function() {
return this.message.split('').reverse().join('')
}
}
})
差別在於:使用 computed,當相依的資料有變更時就會重新計算,而使用 method 則只有在重新渲染才重新計
算;也就是說,在相依資料沒有變更的情況下,若將關聯的 elements 重新渲染,使用 method 會需要再重新計算
一次,而 computed 則不需要